home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 147 / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin / docs / ippon / scrmode / scrmode.c next >
C/C++ Source or Header  |  2000-07-07  |  2KB  |  67 lines

  1. /* scrmode.c */
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <conio.h>
  5. #include <sys/iocs.h>
  6.  
  7.  
  8. int main (int argc, char *argv[])
  9. {
  10.     int sp;
  11.     int old_crtmod;
  12.     int i;
  13.     static unsigned short crtcdata[9] =
  14.     {69, 6, 11 + 8, 59 - 8, 567, 5, 40, 552, 0x0111};
  15.     unsigned short *d;
  16.  
  17.  
  18.     printf ("起動時はこの画面モードです\n何かキーを押して下さい\n");
  19.     getche ();
  20.  
  21.  
  22.  
  23.     /* 256x256ドット 31kHz 256色モードに */
  24.     old_crtmod = _iocs_crtmod (-1);        /* 前の CRTMOD を保存 */
  25.     _iocs_crtmod (10);    /* 256x256dot 31kHz 256色 */
  26.     _iocs_g_clr_on ();    /* 一応 */
  27.  
  28.     printf ("256x256ドット 31kHz 256色モードにしました\n何かキーを押して下さい\n");
  29.     getche ();
  30.  
  31.  
  32.  
  33.     /* 256x256 正方形モードを作る */
  34.     sp = _iocs_b_super (0);
  35.     *(unsigned short *) 0xe80028 = crtcdata[8];
  36.     d = (unsigned short *) 0xe80002;
  37.     for (i = 1; i < 8; i++)
  38.         *d++ = crtcdata[i];
  39.     *(unsigned short *) 0xe80000 = crtcdata[0];
  40.  
  41.     *(unsigned short *) 0xe8e006 |= 0b10;    /* HRL ビット */
  42.     *(unsigned short *) 0xeb080c = crtcdata[2] + 4;
  43.     *(unsigned short *) 0xeb080a = crtcdata[0];    /* スプライト */
  44.     *(unsigned short *) 0xeb080e = crtcdata[6];
  45.     *(unsigned int *) 0xe80018 = *(unsigned int *) 0xe8001c
  46.         = *(unsigned int *) 0xe80020 = *(unsigned int *) 0xe80024
  47.         = (0 << 16) + 0;    /* グラフィック画面の座標 */
  48.  
  49.     *(unsigned short *) 0xe82500 = 0b01001001001110;    /* 優先順位 TX>SP>GR */
  50.     _iocs_b_super (sp);
  51.  
  52.     printf ("\n\n256x256ドット 31kHz 256色・正方形モードにしました\n何かキーを押して下さい\n");
  53.     getche ();
  54.  
  55.  
  56.  
  57.     /* 元の画面モードに戻す */
  58.     sp = _iocs_b_super (0);
  59.     *(unsigned short *) 0xe8e006 &= 0xfffd;        /* HRL ビットを元に戻す */
  60.     _iocs_b_super (sp);
  61.     _iocs_crtmod (old_crtmod);
  62.     printf ("元の画面モードに戻しました\n");
  63.  
  64.  
  65.     return (0);
  66. }
  67.